object Dependencies {

    object Numeron {

        const val Http = "cn.numeron:http:1.0.0"
        const val StatefulLayout = "cn.numeron:stateful.layout:1.1.0"
        const val StatefulLiveData = "cn.numeron:stateful.livedata:1.0.3"
        const val StatelessLiveData = "cn.numeron:stateless.livedata:1.0.3"
        const val SlideRefreshLayout = "cn.numeron:slide-refresh-layout:1.2.1"
        const val RecyclerViewAdapter = "cn.numeron:recyclerview.adapter:1.1.3"

        object Discovery {
            const val Version = "1.3.2"
            const val Library = "cn.numeron:discovery.library:$Version"
            const val GradlePlugin = "cn.numeron:discovery.plugin:$Version"
        }
    }

    object Android {
        const val GradlePlugin = "com.android.tools.build:gradle:4.2.2"
        //const val GradlePlugin = "com.android.tools.build:gradle:7.0.1"
    }

    object Androidx {
        const val CoreKtx = "androidx.core:core-ktx:1.6.0"
        const val AppCompat = "androidx.appcompat:appcompat:1.3.1"
        const val RecyclerView = "androidx.recyclerview:recyclerview:1.2.1"
        const val DataStorePref = "androidx.datastore:datastore-preferences:1.0.0"
        const val ConstraintLayout = "androidx.constraintlayout:constraintlayout:2.1.0"

        object Hilt {
            const val Version = "1.0.0"
            const val Compiler = "androidx.hilt:hilt-compiler:$Version"
            const val Navigation = "androidx.hilt:hilt-navigation:$Version"
            const val NavFragment = "androidx.hilt:hilt-navigation-fragment:$Version"
            const val ViewModel = "androidx.hilt:hilt-lifecycle-viewmodel:$Version-alpha03"
        }

        object Lifecycle {
            const val Version = "2.3.1"
            const val RuntimeKtx = "androidx.lifecycle:lifecycle-runtime-ktx:$Version"
            const val LiveDataKtx = "androidx.lifecycle:lifecycle-livedata-ktx:$Version"
            const val ViewModelKtx = "androidx.lifecycle:lifecycle-viewmodel-ktx:$Version"
        }

        object Navigation {
            const val Version = "2.3.5"
            const val UiKtx = "androidx.navigation:navigation-ui-ktx:$Version"
            const val RuntimeKtx = "androidx.navigation:navigation-runtime-ktx:$Version"
            const val FragmentKtx = "androidx.navigation:navigation-fragment-ktx:$Version"
        }

        object Room {
            const val Version = "2.3.0"
            const val Ktx = "androidx.room:room-ktx:$Version"
            const val Compiler = "androidx.room:room-compiler:$Version"
        }

        object Test {
            const val Junit = "androidx.test.ext:junit:1.1.3"
            const val Espresso = "androidx.test.espresso:espresso-core:3.4.0"
        }

        object Paging {
            const val Version = "3.0.1"
            const val RuntimeKtx = "androidx.paging:paging-runtime-ktx:$Version"
        }
    }

    object Google {

        const val Gson = "com.google.code.gson:gson:2.8.8"
        const val FlexBox = "com.google.android.flexbox:flexbox:3.0.0"

        object Android {
            const val Material = "com.google.android.material:material:1.4.0"
        }

        object Hilt {
            const val Version = "2.38.1"
            const val Android = "com.google.dagger:hilt-android:$Version"
            const val Compiler = "com.google.dagger:hilt-android-compiler:$Version"
            const val GradlePlugin = "com.google.dagger:hilt-android-gradle-plugin:$Version"
        }
    }

    object Kotlin {
        const val Version = "1.5.30"
        const val StdLibJdk8 = "org.jetbrains.kotlin:kotlin-stdlib-jdk8:$Version"
        const val GradlePlugin = "org.jetbrains.kotlin:kotlin-gradle-plugin:$Version"

        object Coroutines {
            const val Version = "1.5.0"
            const val Android = "org.jetbrains.kotlinx:kotlinx-coroutines-android:$Version"
            const val CoreJvm = "org.jetbrains.kotlinx:kotlinx-coroutines-core-jvm:$Version"
        }
    }

    object Squareup {
        const val RetrofitVersion = "2.9.0"
        const val OkHttp = "com.squareup.okhttp3:okhttp:4.9.1"
        const val Retrofit = "com.squareup.retrofit2:retrofit:$RetrofitVersion"
        const val GsonConverter = "com.squareup.retrofit2:converter-gson:$RetrofitVersion"
    }

    object Tests {

        const val Junit = "junit:junit:4.13.2"

    }

    object Io {
        const val Coil = "io.coil-kt:coil:1.3.2"
    }

}